this 指针
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
JavaScript 中最容易使人迷惑的恐怕就数 this 指针了,this 指针在传统 OO 语言中,是在类中声明的,表示对象本身,而在 JavaScript 中,this 表示当前上下文,即调用者的引用。这里我们可以来看一个常见的例子:
//定义一个人,名字为jack
var jack = {
name : "jack",
age : 26
}
//定义另一个人,名字为abruzzi
var abruzzi = {
name : "abruzzi",
age : 26
}
//定义一个全局的函数对象
function printName(){
return this.name;
}
//设置printName的上下文为jack, 此时的this为jack
print(printName.call(jack));
//设置printName的上下文为abruzzi,此时的this为abruzzi
print(printName.call(abruzzi));
运行结果:
jack
Abruzzi
应该注意的是,this 的值并非函数如何被声明而确定,而是被函数如何被调用而确定,这 一点与传统的面向对象语言截然不同,call 是 Function 内置对象上的一个方法,详细描述在第四章。
在线练习
{$ activeFileHint $}